import { router, addRoutes } from "~/router";
import { getToken } from "~/composables/auth";
import { toast, showFullLoading, hideFullLoading } from "~/composables/util";
import store from "./store";

//全局前置守卫
let hasGetInfo = false;
router.beforeEach(async (to, from, next) => {
  showFullLoading();
  const token = getToken();

  if (!token && to.path != "/login") {
    toast("请先登录", "error");
    return next({ path: "/login" });
  }

  if (token && to.path == "/login") {
    toast("请勿重复登录", "error");
    return next({ path: from.path ? from.path : "/" });
  }

  let hasNewRoutes = false;

  if (token && !hasGetInfo) {
    let { menus } = await store.dispatch("getinfo");
    hasGetInfo = true;
    hasNewRoutes = addRoutes(menus);
  }
  let title = (to.meta.title ? to.meta.title : "") + "帝莎编程商城后台";
  document.title = title;
  // console.log(to.meta.title);

  hasNewRoutes ? next(to.fullPath) : next();

  next(to.fullPath);
});

router.afterEach((to, from) => hideFullLoading());
